/**
 * List常用属性和方法：
 *    常用属性：
 *      length
 *      reversed
 *      isEmpty
 *      isNoEmpty
 *    常用方法：
 *      add
 *      addAll
 *      indexOf       查找数据，找不到返回-1
 *      remove
 *      removeAt
 *      fillRange     修改
 *      inster(index, value)
 *      insterAll(index, list)
 *      toList        其他类型转成List
 *      join          List转成字符串
 *      split         字符串转成List
 *    其他循环语句：
 *      forEach
 *      map
 *      where
 *      any
 *      every
 */

/**
 * Set：最主要的功能是去除数组重复内容
 * Set是没有顺序且不能重复的集合，所以不能通过索引去获取值
 */
main(List<String> args) {
  List myList = new List();
  myList.add("111");
  myList.add("222");
  myList.add("333");
  print(myList);
  print(myList.length);
  print(myList.isEmpty);
  print(myList.isNotEmpty);
  print(myList.reversed);
  print(myList.reversed.toList());
  myList.fillRange(1, 3, "555");
  print(myList);

  var str1 = myList.join("~");
  print(str1);
  print(str1 is String);

  var list2 = str1.split("~");
  print(list2);
  print(list2 is List);

  var set1 = new Set();
  set1.add("香蕉");
  set1.add("苹果");
  print(set1);
  print("===========");
  set1.add("香蕉");
  print(set1);

  print(set1.toList());
}
